package cn.tedu.inter2;
/**本类用于进一步测试接口的使用*/
public class TestUserInter {

    public static void main(String[] args) {
        //5.创建接口实现类的对象
        UserInterImpl u = new UserInterImpl();

        //7.测试
        System.out.println(UserInterImpl.age);//静态资源由类名直接调用，
        System.out.println(UserInter.age);//静态，因为可以被接口名直接调用
//        UserInter.age = 20;//final， 因为值不可以被修改

        new UserInterImpl().eat();
    }
}

//1.创建接口
interface UserInter{
    //2.测试接口中是否包含构造方法
    /**1.接口中是否包含构造方法?----没有构造方法*/
//    public UserInter(){}

    //6.测试接口中是否可以定义成员变量
    /**4.接口中的是静态常量，实际上的写法是public static final int age = 1;
     * 只不过接口中可以省略不写，会默认拼接，所以写成int age = 1;也可以*/
    public static final int age=1;//静态常量

    //8.测试接口中可以定义抽象方法
    /**5.接口中的抽象方法的定义可以简写，会自动给方法拼接public abstract*/
    public abstract void eat();

}
//3.创建接口实现类 类默认存在无参构造
class UserInterImpl implements UserInter{
    //4.手工提供本类的无参构造
    public UserInterImpl(){
        /**3.如果一个类没有明确指定他的父类，那么它默认继承顶级父类Object*/
        super();/**3.此处调用的父类的无参构造是Object的无参构造*/
        System.out.println("我是子实现类的无参构造~");
    }

    @Override
    public void eat() {
        System.out.println("实现接口中的抽象方法");
    }
}
